Wired and wireless networks present many challenges for the system designer. For instance, clients can have different display, power, communication, and computational capabilities. In addition, wireless communication links can have different maximum bandwidths, quality levels, and time-varying characteristics.
One means for achieving scalability and efficiency in data streaming environments is to adapt (transcode) a compressed (encoded) stream at intermediate network nodes. A transcoder takes a compressed stream as input, and then processes it to produce another compressed stream as output. Examples of transcoding processes include bitrate reduction, rate shaping, spatial downsampling, frame rate reduction, frame size reduction, and changing compression formats.
Data packets transmitted over networks can experience delays along the way, perhaps arriving late at a destination node. In some instances, data packets may be lost.
The effects of late or lost data packets may be exacerbated for video data that are predictively encoded (compressed). With predictive encoding, the decoding of a frame of data may rely on the information in another frame. For example, with MPEG (Moving Pictures Experts Group) encoding, a P-frame is predicted from a preceding P-frame or I-frame, and a B-frame is predicted from two preceding P-frames or a preceding I-frame and P-frame. Although predictive encoding introduces dependencies in the encoded data that improve the amount of compression, predictive encoding can also result in error propagation in the event of data loss or late arrival. If, for example, a data packet containing data for an I-frame or P-frame arrives late or is lost, then it might not be possible to properly reconstruct a subsequent P-frame or B-frame. In the case in which a P-frame cannot be properly reconstructed because a preceding I-frame or P-frame is absent, other frames dependent on that P-frame for decoding may not be properly reconstructed. Furthermore, the effect of a decoding error may grow from one frame to the next—that is, when the reconstructed image is displayed, the area of the display affected by the error may increase over time.
Thus, an error introduced due to the absence of even a single data packet can be propagated through a number of frames and may affect the overall quality of the display. Accordingly, a method and/or system that can reduce, or even eliminate, the amount of error propagation that can occur due to loss of a data packet would be valuable.